package com.zusmart.core.condition;

import com.zusmart.core.bean.BeanDefinition;
import com.zusmart.core.bean.BeanDefinitionRegistry;
import com.zusmart.core.config.ConfigSourceManager;
import com.zusmart.core.plugin.PluginManager;

public interface ConditionManager {

	public void attachBeanDefinition(BeanDefinition beanDefinition);

	public void detachBeanDefinition(BeanDefinition beanDefinition);

	public boolean execute(BeanDefinition targetBeanDefinition, PluginManager pluginManager, ConfigSourceManager configSourceManager);
	
	public BeanDefinitionRegistry getBeanDefinitionRegistry();
	
}